package com.wjm.api.BlockedPackage;

/**
 * Data:2022年07月27日
 * Author:wjm
 * Content: Thread的阻塞方法
 *
 *
 *  yield()方法：
 *          也是线程的一个静态方法，其作用是：暂停当前正在执行的线程对象（让出时间片），而区执行其他线程
 *          yield方法应该是再当前线程回归到Runnable(可执行)状态，使具有相同优先级的其他线程有可以获得
 *          cpu分发时间片的机会，实现了相同优先级的线程轮回执行。
 *
 *  注意：
 *          但是再让出时间片后，cup获取时间片，并再次分发时间片的时候，有可能又分给了当前的线程
 *
 */
public class YieldDemo {
    public static void main(String[] args) {
        //创建线程对象1
        Thread t1 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        },"wjm");

        //创建线程对象2
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                //进行阻塞
                Thread.yield();
                System.out.println(Thread.currentThread().getName());
            }
        },"cwt");

        //启动线程
        t1.start();
        t2.start();
    }
}
